package com.ywl.designpattern.template;

/**
 * 1.首先，创建一个抽象类，定义模板方法和基本步骤
 * @author yuwl
 * @description
 * @since 2024-06-28 09:26
 */
public abstract class Beverage {
    // 模板方法，定义了制作饮料的步骤
    public final void prepareRecipe() {
        boilWater();
        brew();
        pourInCup();
        addCondiments();
    }

    // 具体方法
    private void boilWater() {
        System.out.println("Boiling water");
    }

    private void pourInCup() {
        System.out.println("Pouring into cup");
    }

    // 抽象方法，子类需要实现
    protected abstract void brew();
    protected abstract void addCondiments();
}

